“Google’s Multilingual Neural Machine Translation System: Enabling Zero-Shot Translation”

Zero-Shot 翻译是指在完成语言 A 到语言 B 的翻译训练之后,语言 A 到语言 C 的翻译不需要再经过任何学习。 它能自动把之前的学习成果转化到翻译任意一门语言,即便工程师们从来没有进行过相关训练。

通过 Zero-Shot,谷歌解决了把神经机器翻译系统扩展到全部语言的难题。有了它,一套系统就可以完成所有语言的互翻。从前两种语言之间都需要多个翻译系统的情况,从此成为了历史。这套架构在翻译其他语言时,不需要在底层 GNMT 系统做任何改变。只需在输入语句的开头插入一个输出语种标记,就可以把结果翻译为任意语言。

下面这幅动图对该 Zero-Shot 系统的运作做了示意。

假设谷歌训练该系统做日语英语、韩语英语的互译,图中用蓝色实线来代表。 GNMT 系统就可以分享这四组翻译(日英,英日,韩英,英韩)的参数。这允许它把任意一组语言的翻译经验转到其他语言上去。学习成果转移和多语言翻译的要求,迫使该系统更好地使用建模的能力。

这启发了工程师们设想:我们能否让系统翻译一组它从来没有翻译过的语言?这可以用韩语日语互译的例子来说明。虽然该系统从未处理过韩日互译,但它利用之前的韩英、日英翻译学习成果,能进行水平不错的韩日互译。谷歌把这个过程称为 “zero-shot” 翻译,图中用黄虚线表示。谷歌宣称,这是世界上首例应用在机器翻译上的学习成果转移。

Zero-shot 翻译的成功带来了另外一个重要问题:这个系统是否在学习语言的通用表达(不管是翻译成什么语种,相同含义的语句都被系统使用相似的表达方式)?——类似于“国际语”或者中介语言?工程师们使用了 3D 图像展示系统的内部网络数据,以了解它在处理日、韩、英的任意互译组合时是如何运作的。

上方图片 a 部分(左)展示了这些翻译的几何结构。意义一致的语句用颜色相同的点代表。比方说,英译韩和日译英的两句话如果意思一致,就会是图上颜色相同的两个点。通过这种方式,我们可以很容易地区分不同颜色(含义)的点。b 部分放大了红色区的点,c 部分则对源语言进行区分。在同一组颜色的点里,我们看到含义相同但从属不同语种的句子。这意味着该系统必然对句子的语义进行了编码,而不是记忆一个短语到另一个短语的翻译。谷歌的工程师把这看作是系统中存在中介语言的标志。

谷歌在论文里面展示了更多的分析结果。他们希望这些发现不但对机器学习和机器翻译的研究人员们有用处,也能对语言学家和对单一系统怎么处理多语言学习感兴趣的人有价值。

今日 (美国时间 11 月 22 日),基于 Zero-Shot 的多语言神经机器学习系统正式登陆谷歌翻译。它目前被应用于新增加的 16 个语言组中的 10个,带来更高的翻译质量和简化的系统架构。我们可以期待在不久的将来,该系统会逐步支持更多的谷歌翻译语种。

扩展阅读